home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl / 5.10.0 / Module / Build / Platform / Unix.pm < prev    next >
Encoding:
Perl POD Document  |  2009-06-26  |  1.6 KB  |  77 lines

  1. package Module::Build::Platform::Unix;
  2.  
  3. use strict;
  4. use vars qw($VERSION);
  5. $VERSION = '0.2808_01';
  6. $VERSION = eval $VERSION;
  7. use Module::Build::Base;
  8.  
  9. use vars qw(@ISA);
  10. @ISA = qw(Module::Build::Base);
  11.  
  12. sub make_tarball {
  13.   my $self = shift;
  14.   $self->{args}{tar}  ||= ['tar'];
  15.   $self->{args}{gzip} ||= ['gzip'];
  16.   $self->SUPER::make_tarball(@_);
  17. }
  18.  
  19. sub is_executable {
  20.   # We consider the owner bit to be authoritative on a file, because
  21.   # -x will always return true if the user is root and *any*
  22.   # executable bit is set.  The -x test seems to try to answer the
  23.   # question "can I execute this file", but I think we want "is this
  24.   # file executable".
  25.  
  26.   my ($self, $file) = @_;
  27.   return +(stat $file)[2] & 0100;
  28. }
  29.  
  30. sub _startperl { "#! " . shift()->perl }
  31.  
  32. sub _construct {
  33.   my $self = shift()->SUPER::_construct(@_);
  34.  
  35.   # perl 5.8.1-RC[1-3] had some broken %Config entries, and
  36.   # unfortunately Red Hat 9 shipped it like that.  Fix 'em up here.
  37.   my $c = $self->{config};
  38.   for (qw(siteman1 siteman3 vendorman1 vendorman3)) {
  39.     $c->{"install${_}dir"} ||= $c->{"install${_}"};
  40.   }
  41.  
  42.   return $self;
  43. }
  44.  
  45. sub _detildefy {
  46.   my ($self, $value) = @_;
  47.   $value =~ s[^~(\w*)(?=/|$)]   # tilde with optional username
  48.     [$1 ?
  49.      ((getpwnam $1)[7] || "~$1") :
  50.      (getpwuid $>)[7]
  51.     ]ex;
  52.   return $value;
  53. }
  54.  
  55. 1;
  56. __END__
  57.  
  58.  
  59. =head1 NAME
  60.  
  61. Module::Build::Platform::Unix - Builder class for Unix platforms
  62.  
  63. =head1 DESCRIPTION
  64.  
  65. The sole purpose of this module is to inherit from
  66. C<Module::Build::Base>.  Please see the L<Module::Build> for the docs.
  67.  
  68. =head1 AUTHOR
  69.  
  70. Ken Williams <kwilliams@cpan.org>
  71.  
  72. =head1 SEE ALSO
  73.  
  74. perl(1), Module::Build(3), ExtUtils::MakeMaker(3)
  75.  
  76. =cut
  77.